Hybrid hard disk drives (HDDs) include one or more rotating magnetic disks combined with non-volatile solid-state (e.g., flash) memory. Generally, a hybrid HDD has both the capacity of a conventional HDD and the ability to access data as quickly as a solid-state drive, and for this reason hybrid drives are well-suited for use in laptop computers. For example, non-volatile solid-state memory in a hybrid drive may be employed as a very large cache for the hybrid drive, where data in the hybrid drive that are the most likely to be accessed again by a host are stored in such a cache. Typically, data associated with logical block addresses (LBAs) that are the most frequently and/or the most recently accessed by a host are retained in the cache of a hybrid drive. In this way, a large portion of the LBAs accessed by the host are typically accessed without the latency associated with reading from or writing to the magnetic disks.
Because the magnetic disk or disks of a hybrid drive generally have much more capacity than that of the non-volatile solid-state memory of the drive, only a fraction of the data stored on the magnetic disks can be cached in the non-volatile solid-state memory. Thus, various cache policies may be employed for determining exactly which LBAs are retained in the cache located in the non-volatile solid-state portion of the drive. Unfortunately, there are instances in which cache policies intended to improve performance of a hybrid drive can have the opposite effect. For example, when a long write stream is written to the magnetic disk of a hybrid drive, any LBAs that are stored in the non-volatile solid-state memory and are overlapped by the write stream are generally “trimmed” from the non-volatile solid-state memory (flagged as no longer stored in the non-volatile solid-state memory). Consequently, even though these LBAs were considered likely to be accessed again by the host and therefore were retained in cache, the act of storing the most recent version of data associated with such LBAs on the magnetic disk results in said LBAs being removed from cache. In this way, LBAs that are likely to be accessed again by the host are removed from cache, despite the inclusion of the removed LBAs in the most recent access to the drive.